<html>
  <head>
    <title>ConArtist - Page Generation</title>
    <link rel="stylesheet" type="text/css" href="style.css" />
  </head>
  <body>
    <h1>ConArtist - Page Generation</h1>
<p>Pages are generated using templates from one of a number of supported templating systems. Both the templates and the data files used during the construction of the pages are contained within the files stores defined for the site.</p>
<h2>Example</h2>
    <p class="centred">
      <img src="layout.png">
    </p>
<p>The layout shown above is generated from the 4 templates shown. When generating the main page content the 3 files shown are used.</p>
<p>If the page is to be cached then the final output is stored within the cache and links are created so that when any of the files involved, including the template, are changed the cached file is removed. The way that the links are created is yet to be decided but will need to be carefully designed so that when we delete the cache entry we also remove the links so that time isn't wasted repeatedly trying to delete a file that no longer exists.</p>
<h2>Decoding URLs</h2>
<p>Deciding which page should be created following a request needs to be done quickly.</p>
<p>The process for accomplishing this has not yet been written but is envisaged as working as follows.</p>
<p class="centred">
  <img src="generation.png"/>
</p>
<p>This means that content is always served from the cache, which should allow us to collect statistics doirectly from the cache (if desired). It is anticipated that the following templating systems will be available within ConArtist</p>
<ul>
  <li>XSLT</li>
  <li>ETL (<a href="http://etl.i-want-a-pony.com/">http://etl.i-want-a-pony.com/</a>)</li>
</ul>
<p>One of the advantages to the system proposed is that any other desired templating system can be used as the content generation will be implemented as an external module.</p>
  </body>
</html>
